/*
 * @Description: 定义函数
 * @Autor: HuiSir<273250950@qq.com>
 * @Date: 2021-05-06 16:23:47
 * @LastEditTime: 2021-05-06 16:32:22
 */

(function () {
    /**
     * @description: 命名函数
     * @param {number} x
     * @param {number} y
     * @return {number}
     */
    function add(x: number, y: number): number {
        return x + y
    }

    /**
     * @description: 匿名函数
     * @param {number} x
     * @param {number} y
     * @return {number}
     */
    let add2 = function (x: number, y: number): number {
        return x + y
    }

    /**
     * @description: 完整匿名函数写法
     * @param {number} x
     * @param {number} y
     * @param {number} y
     * @return {number}
     */
    let add3: (x: number, y: number) => number = function (x: number, y: number): number {
        return x + y
    }

    /**
     * 箭头函数写法
     */
    let add4: (x: number, y: number) => number = (x: number, y: number): number => {
        return x + y
    }

    /**
     * 将函数类型提取为接口
     */
    interface iAdd {
        (x: number, y: number): number
    }

    /**
     * @description: 使用接口类型
     * @param {number} x
     * @param {number} y
     * @return {number}
     */
    let add5: iAdd = (x: number, y: number): number => {
        return x + y
    }
})()

